import { createFromIconfontCN } from '@ant-design/icons';
import { message } from 'antd';
import { objToArr } from 'utils/helper'
const Store = window.require('electron-store')
const store = new Store({ 'name': 'Files Data' });
const settingsStore = new Store({ name: 'Settings' })

const config = {
    IconFont: createFromIconfontCN({
        scriptUrl: 'http://at.alicdn.com/t/font_1847360_ti9nd37max.js',
    }),
    info: (msg) => {
        message.info(msg);
    },
    warning: (msg) => {
        message.warning(msg);
    },
    success: (msg) => {
        message.success(msg);
    },
    error: (msg) => {
        message.error(msg);
    },
    saveFilesToStore: (files) => {
        const filesStoreObj = objToArr(files).reduce((result, file) => {
            const { id, path, title, createdAt, isSynced, updatedAt } = file
            result[id] = {
                id,
                path,
                title,
                createdAt,
                isSynced,
                updatedAt
            }
            return result
        }, {})
        store.set('files', filesStoreObj)
    },
    getFiles: () => {
        return store.get('files')
    },
    getSavedFileLocation: () =>{
        return settingsStore.get('savedFileLocation')
    },
    getAutoSync:()=>{
        return ['accessKey', 'secretKey', 'bucketName', 'domainURL', 'enableAutoSync'].every(key => !!settingsStore.get(key))
    }
}

export default config;